<template>
  <div class="dashboard-editor-container">
    <el-row style="width: 86.3%; top: 6px; z-index: 999; position: fixed">
      <el-col :span="4.5" class="card-box">
        <el-cascader
          v-model="queryParams.salesGrade"
          placeholder="选择店铺分组"
          :options="cascadeList"
          :props="{ checkStrictly: true }"
          @change="handleChange"
          style="width: 250px; height: 30px"
        >
        </el-cascader>

        <el-select
          v-model="queryParams.liveType"
          placeholder="自播/达播"
          clearable
          @change="handleChange"
          style="width: 150px; height: 30px; margin-left: 5px"
        >
          <el-option
            v-for="dict in liveTypeList"
            :key="dict"
            :label="dict"
            :value="dict"
          />
        </el-select>
      </el-col>
      <el-col :span="8" style="background-color: #f5f5f5; height: 30px">
        <nav id="navbar">
          <ul>
            <!-- <li :class="{ active: isActiveSection(1) }">
              <a href="#section1" @click="scrollToSection(1)">销售总览</a>
            </li>
            <li :class="{ active: isActiveSection(2) }">
              <a href="#section2" @click="scrollToSection(2)">渠道销售</a>
            </li>
            <li :class="{ active: isActiveSection(3) }">
              <a href="#section3" @click="scrollToSection(3)">店铺销售</a>
            </li>
            <li :class="{ active: isActiveSection(4) }">
              <a href="#section4" @click="scrollToSection(4)">品类排行</a>
            </li>
            <li :class="{ active: isActiveSection(5) }">
              <a href="#section5" @click="scrollToSection(5)">库存总览</a>
            </li>

            <li :class="{ active: isActiveSection(6) }">
              <a href="#section6" @click="scrollToSection(6)">渠道库存</a>
            </li>
            <li :class="{ active: isActiveSection(7) }">
              <a href="#section7" @click="scrollToSection(7)">店铺库存</a>
            </li>
            <li :class="{ active: isActiveSection(8) }">
              <a href="#section8" @click="scrollToSection(8)">地区排行</a>
            </li> -->
          </ul>
        </nav>
      </el-col>
      <el-col :span="7">
        <date
          v-model="valueTime"
          :type.sync="groupType"
          @handleChangeTime="handleChangeTime($event)"
        ></date>
      </el-col>
      <!-- <timeSearch @getDateArr="getDateArr" @changDay="changDay" :timeArr="timeArr" :dayActive="this.dayActive"
        :dayLimit="1095" /> -->
    </el-row>

    <section id="section2">
      <el-row :gutter="10" style="background: #fff; padding: 20px 16px 0">
        <el-card>
          <div
            slot="header"
            style="display: flex; justify-content: space-between"
          >
            <span
              ><i class="el-icon-collection"></i>
              {{ queryParams.salesGrade.join("-")
              }}{{ " " + queryParams.liveType }}销售报表</span
            >
            <span>
              <!-- v-if="list.length > 1"   style="color: white" -->
              <el-col :span="1.5">
                <el-button
                  type="primary"
                  size="mini"
                  @click="chatAdd"
                  v-hasPermi="['live:BiLiveCheckCost:add']"
                  >新增</el-button
                >
              </el-col>
              <el-col :span="1.5">
                <el-button
                  type="warning"
                  plain
                  icon="el-icon-download"
                  size="mini"
                  @click="handleExport"
                  >导出</el-button
                >
              </el-col>
              <el-col :span="1.5">
                <el-button
                  type="primary"
                  size="mini"
                  @click="handleGo('/conf/ProTypeConf')"
                  >品类配置</el-button
                >
              </el-col>
            </span>
          </div>
          <el-table
            :data="itemData"
            :height="300"
            style="width: 100%"
            header-cell-class-name="table-header"
            row-class-name="table-row-low"
            border
          >
            <!-- @cell-click="tableList" -->
            <!-- <el-table-column
              label="达人名称"
              align="center"
              prop="talentName"
            ></el-table-column> -->
            <el-table-column
              label="品类"
              align="center"
              prop="productType"
            ></el-table-column>
            <el-table-column
              label="销售总金额"
              align="center"
              prop="payAmount"
            />
            <!-- <el-table-column
              label="销售订单数 "
              align="center"
              prop="orderQuantity"
            ></el-table-column> -->
            <el-table-column
              label="销售总件数"
              align="center"
              prop="productQuantity"
            />
            <el-table-column
              label="退款总金额"
              align="center"
              prop="returnAmount"
            />
            <el-table-column
              label="净销售金额"
              align="center"
              prop="netSaleAmount"
            />
            <el-table-column
              label="退货件数"
              align="center"
              prop="returnQuantity"
            />
            <el-table-column
              label="净销售成本"
              align="center"
              prop="netSaleCost"
            />
            <el-table-column
              label="销售零售总额"
              align="center"
              prop="retailAmount"
            />
            <el-table-column
              label="退货零售总额"
              align="center"
              prop="retailReturnAmount"
            />
            <el-table-column label="退货率" align="center" prop="returnRate" />
            <el-table-column
              label="折扣率"
              align="center"
              prop="discountRate"
            />
          </el-table>
        </el-card>
      </el-row>
      <!-- margin-bottom: 32px xqpjTableData-->
      <el-row
        :gutter="10"
        style="background: #fff; padding: 20px 16px 0"
        v-for="item in list"
        :key="item.id"
      >
        <el-card>
          <div
            slot="header"
            style="justify-content: space-between; display: flex"
          >
            <span
              ><i class="el-icon-collection"></i> {{ item.salesGrade.join("-")
              }}{{ " " + item.liveType ? item.liveType : "综合" }}报表</span
            >

            <span>
              <!-- v-if="list.length > 1"   style="color: white" -->
              <el-button
                type="primary"
                size="mini"
                @click="chatAdd"
                v-hasPermi="['live:BiLiveCheckCost:add']"
                >新增</el-button
              >
              <el-button
                type="danger"
                size="mini"
                @click="delRow(item, item.id)"
                v-hasPermi="['live:BiLiveCheckCost:remove']"
                >删除</el-button
              >
              <el-button
                type="warning"
                plain
                icon="el-icon-download"
                size="mini"
                @click="handleExportCheckCost(item.id)"
                >导出</el-button
              >
            </span>
          </div>
          <el-table
            :data="item.name"
            :height="300"
            style="width: 100%"
            header-cell-class-name="table-header"
            row-class-name="table-row-low"
            border
          >
            <!-- @cell-click="tableList" -->
            <!-- <el-table-column
              label="达人名称"
              align="center"
              prop="talentName"
            ></el-table-column> -->
            <el-table-column
              label="品类"
              align="center"
              prop="productType"
            ></el-table-column>
            <el-table-column
              label="销售总金额"
              align="center"
              prop="payAmount"
            />
            <!-- <el-table-column
              label="销售订单数 "
              align="center"
              prop="orderQuantity"
            ></el-table-column> -->
            <el-table-column
              label="销售总件数"
              align="center"
              prop="productQuantity"
            />
            <el-table-column
              label="退款总金额"
              align="center"
              prop="returnAmount"
            />
            <el-table-column
              label="净销售金额"
              align="center"
              prop="netSaleAmount"
            />
            <el-table-column
              label="退货件数"
              align="center"
              prop="returnQuantity"
            />
            <el-table-column
              label="净销售成本"
              align="center"
              prop="netSaleCost"
            />
            <el-table-column
              label="销售零售总额"
              align="center"
              prop="retailAmount"
            />
            <el-table-column
              label="退货零售总额"
              align="center"
              prop="retailReturnAmount"
            />
            <el-table-column label="退货率" align="center" prop="returnRate" />
            <el-table-column
              label="折扣率"
              align="center"
              prop="discountRate"
            />
          </el-table>
          <!-- <pagination
            v-show="objItemtotal > 0"
            :total="objItemtotal"
            :page.sync="objItem.pageNum"
            :limit.sync="objItem.pageSize"
            @pagination="getselectLiveOrderSaleList(objItem)"
          /> -->
        </el-card>
      </el-row>
    </section>
    <el-dialog
      :visible.sync="Visiblenote"
      append-to-body
      title="生成报表"
      width="500px"
      v-if="Visiblenote"
    >
      <el-form label-width="140px">
        <el-form-item label="选择销售渠道(必选)" prop="talentLevel">
          <el-cascader
            v-model="value"
            placeholder="选择店铺分组"
            :options="cascadeList"
            :props="{ checkStrictly: true }"
            style="width: 250px; height: 30px"
          >
          </el-cascader>
        </el-form-item>
        <el-form-item label="来源" prop="talentLevel">
          <el-select v-model="liveType" placeholder="自播/达播/综合" clearable>
            <el-option
              v-for="dict in liveTypeList"
              :key="dict"
              :label="dict"
              :value="dict"
            />
          </el-select>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="mini" @click="addLibraryIdList"
          >生成报表</el-button
        >
      </div>
    </el-dialog>
  </div>
</template>

<script>
import {
  listBiLiveOrder,
  getBiLiveOrder,
  delBiLiveOrder,
  addBiLiveOrder,
  updateBiLiveOrder,
  selectLiveVoStatistics,
  selectLiveData,
  selectLiveOrderSaleList,
  selectLiveSaleStatistics,
  selectProTypeList,
  BiLiveCheckCost,
  BiLiveCheckCostlist,
  delBiLiveCheckCost,
} from "@/api/live/BiLiveOrder";
import { getCache } from "@/api/monitor/cache";
// import echarts from "echarts";
import * as echarts from "echarts/lib/echarts.js";
require("echarts/extension/bmap/bmap");
import "echarts/map/js/china.js"; //引入中国地图数据
import city from "echarts/map/json/china-cities.json";
import date from "./day/date.vue";

import { listBrandChannelShop, listAll } from "@/api/chart/brandChannelShop";
import loginVue from "../../login.vue";
import { getInfo } from "@/api/login.js";
const lineChartData = {};

export default {
  name: "Admin",
  dicts: [
    "sys_product_item",
    "sys_product_secondary",
    "sys_product_cycle",
    "sys_product_pl",
  ],
  components: {
    date,
  },
  data() {
    return {
      queryObj: {},

      userId: null,
      //生成报表
      Visiblenote: false,
      liveTypeList: ["自播", "达播", "综合"],
      liveType: "",
      //价格带
      list: [],
      //多选品类
      formData: {
        libraryIdList: [{ id: "" }],
      },
      libraryOptions: [
        // { value: "1", label: "库位1" },
        // { value: "2", label: "库位2" },
        // { value: "3", label: "库位3" },
        // { value: "4", label: "库位4" },
        // { value: "5", label: "库位5" },
        // { value: "6", label: "库位6" },
      ], // 库存名称列表

      //雷达图
      echartDataRaddar: [],
      //总览数据
      itemData: [],
      // 总条数
      total: 0,
      count: 0,
      timeGap: { startTime: "", endTime: "" },
      //时间控件
      valueTime: new Date(new Date().setDate(new Date().getDate() - 1)),
      groupType: "date",
      // 店铺
      cascadeList: [],
      // , "天猫", "vfu运动旗舰店"
      value: [],
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        liveType: "",
        salesGrade: [],
        // firstLevelList: null,
        // secondLevelList: null,
        // threeLevelList: null,
      },
    };
  },
  created() {
    this.getroles();
    // this.$alert("请选择数据存在的日期，例如2024.04.30", "提示", {
    //   confirmButtonText: "确定",
    // });
    this.getList();

    // this.handleChangeTime()
    /** 查询品牌渠道店铺关系列表 */
    this.getdataSourceList();

    // this.openLoading();
  },
  // mounted() {
  //   this.$store.dispatch("app/toggleSideBarHide", fa);
  // },
  watch: {},
  mounted() {
    window.addEventListener("scroll", this.startScrollTimer);
  },
  beforeDestroy() {
    // window.removeEventListener("scroll", this.startScrollTimer);
    // console.log(JSON.stringify(this.list));
    // const getInfoData = [];
    // console.log(JSON.stringify(getInfoData));
    // if (this.list.length == 0) {
    //   let obj = [
    //     {
    //       name: null,
    //       reqId: null,
    //       salesGrade: null,
    //       userId: this.userId,
    //       liveType: null,
    //     },
    //   ];
    //   BiLiveCheckCost(obj).then((res) => {});
    // } else {
    //   this.list.forEach((item) => {
    //     item.name = null;
    //     item.reqId = item.id;
    //     delete item.id;
    //     getInfoData.push({ ...item, userId: this.userId });
    //   });
    //   BiLiveCheckCost(getInfoData).then((res) => {});
    // }
  },

  methods: {
    handleGo(path) {
      this.$router.push(path);
    },
    getroles() {
      getInfo().then((res) => {
        this.userId = res.user.userId;
      });
    },
    //店铺控件
    handleChange(val) {
      console.log(JSON.stringify(val));

      // var lastElement = val.pop();
      // this.shopName = lastElement

      // console.log(this.dayActive);
      let obj = {
        salesGrade: this.queryParams.salesGrade,
        liveType: this.queryParams.liveType,
        ...this.timeObj,
      };
      this.queryObj = obj;

      if (!obj.endTime) {
        return;
      } else {
        this.AllselectProTypeList(obj);
        return;
      }
      let param = {
        dataSource: this.value,
        startTime: this.dateFormat(this.timeObj.startTime),
        endTime: this.dateFormat(this.timeObj.endTime),
        dataType: this.groupType,
      };
      console.log(JSON.stringify(param));
      if (!param.endTime) {
        return;
      } else {
        // this.getechartChannelData(obj)
        this.getnumberOfItem(param);
        this.getTopSal(param);
      }
    },
    //选完时间后发请求
    handleChangeTime(timeObj) {
      // console.log(type)
      // console.log(timeObj)
      // TODO
      this.timeObj = timeObj;

      if (this.cascadeList.length < 1) {
        return;
      }

      console.log(JSON.stringify(this.timeObj));
      let obj = {
        salesGrade: this.queryParams.salesGrade,
        liveType: this.queryParams.liveType,
        ...timeObj,
      };
      this.queryObj = obj;

      console.log(JSON.stringify(obj));

      localStorage.removeItem("result");
      // localStorage.setItem("result", JSON.stringify(obj));

      if (!obj.endTime) {
        return;
      } else {
        console.log(1);

        this.AllselectProTypeList(obj);
        //生成
        this.list.forEach((item) => {
          item = { ...item, ...timeObj };
          delete item.name;
          this.getselectProTypeList(item);
        });

        return;
      }
    },
    AllselectProTypeList(obj) {
      selectProTypeList(obj).then((response) => {
        this.itemData = response ? response : [];
      });
    },
    getselectProTypeList(obj) {
      selectProTypeList(obj).then((response) => {
        // <!-- this.itemData = response ? response : []; -->
        if (response.length > 0) {
          //生成
          this.list.forEach((item) => {
            if (
              item.salesGrade == obj.salesGrade &&
              item.liveType == obj.liveType
            ) {
              item.name = response;
            }
          });
        }
        // this.list.forEach((item) => {
        //   if (item == null) {
        //     this.list.splice(0, 1);
        //   }
        // });
        console.log(JSON.stringify(this.list));
      });
    },
    //打开弹窗
    chatAdd() {
      // if (this.ids.length > 1 || this.ids.length == 0) {
      //   this.$modal.msgError("请选择一个指定达人信息！");
      //   return;
      // }

      this.Visiblenote = true;
    },
    getBiLiveCheckCostlist() {
      BiLiveCheckCostlist().then((response) => {
        if (response.length == 0) {
          this.list = [];
        } else {
          this.list = [];
          response.forEach((item) => {
            this.list.push({
              name: null,
              liveType: item.liveType ? item.liveType : "",
              id: item.reqId,
              salesGrade: item.salesGrade,
            });
          });
        }
        this.handleChangeTime(this.timeObj);
      });
      // console.log(JSON.stringify(this.list));
      // this.handleChangeTime(this.timeObj);
    },
    addLibraryIdList() {
      // this.list.push({
      //   name: null,
      //   liveType: this.liveType,
      //   id: this.count++,
      //   salesGrade: this.value,
      // });
      // console.log(JSON.stringify(this.list));
      if (!this.liveType) {
        this.liveType = "综合";
      }
      let obj = [];
      obj.push({
        name: null,
        liveType: this.liveType,
        reqId: this.count++,
        salesGrade: this.value,
        userId: this.userId,
      });
      BiLiveCheckCost(obj).then((res) => {
        this.liveType = "";
        if (res.code == 200) {
          this.getBiLiveCheckCostlist();
        }
      });

      this.Visiblenote = false;
      console.log(JSON.stringify(this.list));
      // this.$modal.msgSuccess("已生成报表");
    },
    //库存名称删除
    delRow(item, index) {
      console.log(JSON.stringify(item));

      // item.reqId = item.id;
      // delete item.id;
      // const ids = { ...item, userId: this.userId };
      const ids = index;
      this.$modal
        .confirm("是否确认删除数据项？")
        .then(function () {
          return delBiLiveCheckCost(ids);
        })
        .then((res) => {
          // this.getList();
          this.getBiLiveCheckCostlist();
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => {});
    },
    //达播
    tableList(row, column, cell, event) {
      this.objItem.item = row.item;
      this.getselectLiveSaleStatistics(this.objItem);
    },
    //自播
    tableEdit(row, column, cell, event) {
      this.objSelf.item = row.item;
      this.getselectLiveSaleStatistics(this.objSelf);
    },
    getselectLiveSaleStatistics(obj) {
      selectLiveSaleStatistics(obj).then((response) => {
        if (response) {
          //
          var row = [];
          var rowI = [];
          // var rowII = [];
          response.forEach((item) => {
            row.push({
              支付日期: item.dataDateUnit,
              成交订单数: item.orderQuantity,
              // 自播销售金额: item.payAmount,
            });
            rowI.push({
              支付日期: item.dataDateUnit,
              销售金额: item.payAmount,
              // 自播成交订单数: item.orderQuantity,
            });
            // rowII.push({
            //   支付日期: item.dataDateUnit,
            //   达播退款金额: item.talentReturnAmount,
            //   自播退款金额: item.returnAmount,
            // });
          });
          this.echartDataIII.rows = row;
          this.echartDataIV.rows = rowI;
          // this.echartDataII.rows = rowII;
        }
      });
    },
    //表格
    getselectLiveOrderSaleList(obj) {
      selectLiveOrderSaleList(obj).then((response) => {
        if (obj.liveType == "达播") {
          this.biNumberItem = response.rows;
          this.objItemtotal = response.total;
        } else if (obj.liveType == "自播") {
          this.biNumberSelf = response.rows;
          this.objSelftotal = response.total;
        }
      });
    },
    /**
     * 合并行 - 书架
     */
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      // const { timetableBookVO } = this.detailData;
      const timetableBookVO = this.biNumberItem;
      const listMap = {};
      timetableBookVO.length &&
        timetableBookVO.forEach((item, index) => {
          if (listMap[item.talentName]) {
            // len - 用于书架合并多少行
            listMap[item.talentName].len += 1;
            // firstIndex - 用于同一个书架，最开始的书架进行合并，例如书架1，有3本书，则第一本书的书架1合并3行，后面都为0即可
            listMap[item.talentName].firstIndex =
              listMap[item.talentName].firstIndex < index
                ? listMap[item.talentName].firstIndex
                : index;
          } else {
            listMap[item.talentName] = { len: 1, firstIndex: index };
          }
        });
      if (columnIndex == 0) {
        if (
          listMap[row.talentName] &&
          listMap[row.talentName].firstIndex == rowIndex
        ) {
          return { rowspan: listMap[row.talentName].len, colspan: 1 };
        } else {
          return { rowspan: 0, colspan: 0 };
        }
      }
    },
    //销售指标
    getselectSaleSingle(obj) {
      selectLiveData(obj).then((response) => {
        // if (response) {
        this.biNumberOfItem = response ? response : {};
        console.log(JSON.stringify(this.biNumberOfItem));
        // }
      });
    },

    /** 查询品牌渠道店铺关系列表 */
    getdataSourceList() {
      listAll().then((response) => {
        let list = [];
        response.forEach((item) => {
          if (item.isTalentLive == "是") {
            list.push(item);
          }
        });
        let result = this.transformData(list);
        this.value = [
          result[0].label,
          result[0].children[0].label,
          result[0].children[0].children[0].label,
        ];
        this.queryParams.salesGrade = [
          result[0].label,
          result[0].children[0].label,
          result[0].children[0].children[0].label,
        ];
        this.cascadeList = result;
        this.handleChange();
        //后端list
        this.getBiLiveCheckCostlist();
      });
    },
    //店铺渠道品牌转换

    transformData(data) {
      let result = [];

      data.forEach((item) => {
        let brand = item.brand;
        let channel = item.channel;
        let shopName = item.channelShopName;

        // 如果brand在结果数组中不存在，则创建一个新的数组
        let brandIndex = result.findIndex(
          (brandObj) => brandObj.label === brand
        );
        if (brandIndex === -1) {
          result.push({
            label: brand,
            value: brand,
            children: [],
          });
          brandIndex = result.length - 1;
        }

        // 如果channel在当前brand的children数组中不存在，则创建一个新的数组
        let channelIndex = result[brandIndex].children.findIndex(
          (channelObj) => channelObj.label === channel
        );
        if (channelIndex === -1) {
          result[brandIndex].children.push({
            label: channel,
            value: channel,
            children: [],
          });
          channelIndex = result[brandIndex].children.length - 1;
        }

        // 如果shopName在当前channel的children数组中不存在，则创建一个新的数组
        let shopIndex = result[brandIndex].children[
          channelIndex
        ].children.findIndex((shopObj) => shopObj.label === shopName);
        if (shopIndex === -1) {
          result[brandIndex].children[channelIndex].children.push({
            label: shopName,
            value: shopName,
            // children: []
          });
        }
      });

      return result;
    },
    handleExportCheckCost(id) {
      this.list.forEach((item) => {
        if (item.id == id) {
          console.log(JSON.stringify(item));
          delete item.name;
          const obj = { ...item, ...this.timeObj };
          this.download(
            "live/BiLiveOrder/liveProTypeCostExport",
            {
              ...obj,
            },
            `成本核算_${new Date().getTime()}.xlsx`
          );
        }
      });
    },
    handleExport() {
      this.download(
        "live/BiLiveOrder/liveProTypeCostExport",
        {
          ...this.queryObj,
        },
        `成本核算_${new Date().getTime()}.xlsx`
      );
    },
    /** 查缓存询信息 */
    getList() {},
    // 打开加载层
    openLoading() {
      this.$modal.loading("正在加载分析销售监控数据，请稍候！");
    },
  },
};
</script>

<style lang="scss" scoped>
/* 移除默认的列表样式 */
ul {
  margin-top: 0.4%;
  list-style-type: none;
  /* 设置弹性布局，使列表项横向排列 */
  display: flex;
  /* 添加一些内边距和背景颜色 */
  // padding: 10px;
  margin-right: 10px;
  /* 设置边框和圆角 */
  // border: 1px solid #ddd;
  border-radius: 5px;
  flex-direction: row;
  align-items: center;
  justify-content: space-around;
}

/* 设置列表项样式 */
li {
  /* 添加一些内边距和右边距 */
  // padding: 10px;
  margin-right: 10px;
  /* 设置链接文本样式 */
  font-size: 15px;
  color: #bbb;
  text-decoration: none;
}

li.active a {
  // color: #f00;
  /* 高亮颜色 */
  color: #fff;
  background-color: #40c9c6;
}

// section {
//   margin-top: 60px;
// }

.dashboard-editor-container {
  padding: 32px;
  background-color: rgb(240, 242, 245);
  position: relative;

  .github-corner {
    position: absolute;
    top: 0px;
    border: 0;
    right: 0;
  }

  .chart-wrapper {
    background: #fff;
    padding: 16px 16px 0;
    margin-bottom: 32px;
  }
}

@media (max-width: 1024px) {
  .chart-wrapper {
    padding: 8px;
  }
}
</style>
<!-- <style >
.el-cascader__menu {
  max-height: 100%;
  /* max-width: 100%; 或者其他你需要的值 */
  /* overflow-x: hidden; */
  overflow-y: hidden;
}
</style> -->
Excel(name =“达人名称")
private string talentName;
/** item */
@Excel(name =“产品款号")private String item;
/** 支付金额 */
@Excel(name =“支付金额")private Double payAmount;
/** 成交订单数 */@Excel(name =“成交订单数")
private Integer orderQvantity:
/** 销售件数 */
@Excel(name =“销售件数")
private Integer productQuantity;
/** 退款金额 */
@Excel(name =“退款金额")
private Double returnAmount;
销售总金额


销售订单数


销售总件数


退款总金额


净销售金额


净销售件
/** 净销售额 */
@Excel(name =“净销售额")private Double netSaleAmount;
/** 净销售件数 */@Excel(name ="净销售件数")private Integer netSaleQuantity;
/** 折扣率 */
@Excel(name =“折扣率")private Double discountRate;


品类
销售总金额
销售总件数
退款总金额
净销售金额
退货件数
净销售成本
销售零售总额

销售零售总额
退货委售总颜
退货率
折扣率

/** 销售总金额 */@Excel(name ="销售总金额")private Double payAmount,
/** 销售总件数 */@Excel(name =“销售总件数")private Integer productQuantity;
/** 退款总金额 */@Excel(name ="退款总金额")private Double returnAmount;
/** 净销售额 */@Excel(name ="净销售额")private Double netSaleAmount
/** 退货件数 */@Excel(name ="退货件数")private Integer returnQuantity;
/** 净销售成本 */@Excel(name =“净销售成本”private Integer netSaleCost;
/** 净销售成本 */@Excel(name =“净销售成本")private Integer netSaleCost;
/** 销售零售总额 */@Excel(name ="销售售总额")private Double retailAmount;
/** 退货零售总额 */@Excel(name =“退货零售总额")private Double retailReturnAmount;
/** 退货率 */@Excel(name =“退货率")private Double returnRate;
/** 折扣率 */@Excel(name =“折扣率")private Double discountRate;